# For each..next

for each..next kontrol ifadesi, virgülle ayrılmış listedeki her bir değer için bir veya daha fazla deyimi yürüten bir kod yineleme yapısıdır. for ve next öğeleri arasına alınan döngüdeki deyimler, listedeki her bir değer için çalıştırılır.

Söz Dizimi:

Özel söz dizimi geçerli dizinde dosya ve dizin adlarıyla listeler oluşturmayı mümkün kılar.

for each var in list

[statements]

[exit for [ ( when | unless ) condition ]

[statements]

next [var]

Bağımsız Değişkenler:

For each bağımsız değişkenleri

| Bağımsız Değişken | Açıklama |
| --- | --- |
| var | Her bir döngü yürütmesi için listeden yeni bir değer edinecek kod değişkeni adı. var öğesi next öğesinden sonra belirtilirse, karşılık gelen for each öğesinden sonra bulunan öğeyle aynı değişken adı olmalıdır. |

var değişkeninin değeri döngü içinde deyimlerle değiştirilebilir, ancak bu iyi bir programlama uygulaması değildir.

Döngü içinde bir exit for cümlesiyle karşılaşılırsa, kodun yürütülmesi döngünün sonunu belirten next cümlesinden sonra gelen ilk deyime aktarılır. Bir exit for cümlesi, when veya unless sonekinin isteğe bağlı kullanımıyla koşullu hale getirilebilir.

Bilgi notufor each..next deyimi bir kontrol ifadesi olduğundan ve bu nedenle noktalı virgülle veya satır sonuyla bittiğinden, üç olası cümlesinin her biri (for each, exit for ve next) satır sınırını geçmemelidir.

Söz Dizimi:

list := item { , item }

item := constant | (expression) | filelist (mask) | dirlist (mask) | fieldvaluelist (fieldname)

List bağımsız değişkenleri

| Bağımsız Değişken | Açıklama |
| --- | --- |
| constant | Herhangi bir sayı veya dize. Doğrudan koda yazılan bir dizenin tek tırnak içine alınması gerektiğini unutmayın. Tek tırnak içinde olmayan dize bir değişken olarak yorumlanır ve değişkenin değeri kullanılır. Sayıların tek tırnak içine alınması gerekmez. |
| expression | Rastgele seçilen bir ifade. |
| mask | Geçerli dosya adı karakterlerini ve aynı zamanda standart joker karakterlerini (\* ve ?) de içerebilen bir dosya adı veya klasör adı maskesi. |
| condition | True veya False olarak değerlendirilen bir mantıksal ifade. |
| statements | Bir veya daha fazla QlikView kod deyiminden oluşan herhangi bir grup. |
| filelist mask | Bu söz dizimi, geçerli dizinde olup dosya adı maskesiyle eşleşen tüm dosyaların virgülle ayrılmış bir listesini oluşturur. |
| dirlist mask | Bu söz dizimi, geçerli klasörde olup klasör adı maskesiyle eşleşen tüm klasörlerin virgülle ayrılmış bir listesini oluşturur. |
| fieldvaluelist mask | Bu söz dizimi, QlikView'e önceden yüklenmiş bir alanın değerleri aracılığıyla yinelenir. |

Uyarı notuQlik Web Depolama Alanı Sağlayıcısı Bağlayıcıları ve diğer DataFiles bağlantıları, joker karakter (\* ve ?) kullanan filtre maskelerini desteklemez.

Örnek 1: Bir dosya listesini yükleme

```
// LOAD the files 1.csv, 3.csv, 7.csv and xyz.csv for each a in 1,3,7,'xyz'    LOAD * from file$(a).csv; next
```

Örnek 2: Diskte dosyaların listesini oluşturma

Bu örnek, QlikView ile ilgili dosyaların tümünü bir klasöre yükler.

```
 sub DoDir (Root)    for each Ext in 'qvw', 'qva', 'qvo', 'qvs', 'qvc', 'qvd'        for each File in filelist (Root&'\*.' &Ext)           LOAD              '$(File)' as Name,              FileSize( '$(File)' ) as Size,              FileTime( '$(File)' ) as FileTime          autogenerate 1;        next File     next Ext    for each Dir in dirlist (Root&'\*' )        call DoDir (Dir)     next Dir  end sub  call DoDir ('C:')
```

Örnek 3: Bir alanın değerleri aracılığıyla yineleme

Bu örnek, yüklenen FIELD değerlerinin listesi aracılığıyla yineleme yapar ve yeni bir alan (NEWFIELD) oluşturur. Her bir FIELD değeri için iki NEWFIELD kaydı oluşturulur.

```
 load * inline [ FIELD one two three ];  FOR Each a in FieldValueList('FIELD') LOAD '$(a)' &'-'&RecNo() as NEWFIELD AutoGenerate 2; NEXT a  
```

Elde edilen tablo şöyle görünür:

Example 3

| NEWFIELD |
| --- |
| one-1 |
| one-2 |
| two-1 |
| two-2 |
| three-1 |
| three-2 |

## Daha fazla bilgi

* [For..next](https://help.qlik.com/tr-TR/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/For.htm)
* [Next](https://help.qlik.com/tr-TR/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/Next.htm)
* [Exit](https://help.qlik.com/tr-TR/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/Exit.htm)